package cn.tedu.ex;
//测试 jdk的新特性
//1.8--Lambda表达式
//使用语法来代替 匿名内部类，代码不仅简洁，而且还可读
//语法：（参数列表）->{方法体}
//要求：--只有一个抽象方法的 接口
public class TestLambda {
    public static void main(String[] args) {
        //匿名内部类
     /*   Inter in=new Inter() {
            //提供重写的抽象方法
            @Override
            public void save() {
                System.out.println("数据保存成功");
            }
        };
        in.save();
      */
        //Lambda表达式--接口里只能有一个抽象方法--优化匿名内部类
        //语法：（参数列表）->{方法体};练习：没有参数，没有返回值
        Inter in2 = () -> {
            System.out.println("Lambda表达式");
        };
        in2.save();
        //语法：（参数列表）->{方法体};练习：有参数，没有返回值
        Inter2 in3 = (int a) -> {
            System.out.println(a);
        };
        in3.delete(10);
        //语法：（参数列表）->{方法体};练习：有参数，有返回值
        Inter3 in4 = (String a, int b) -> {
            return a + b;
        };
        System.out.println(in4.get("tianhou", 30));//打印获取到结果
    }
}
@FunctionalInterface
interface Inter3 {
    String get(String name,int age);
}
interface Inter2 {
    void delete(int id);
}
interface Inter {
    void save();
}
